﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;

namespace ModelViewer
{
    /// <summary>
    /// Interface for items that are placement, having position, orientation, and
    /// scale.
    /// </summary>
    public interface IPlaceable
    {
        /// <summary>
        /// Any Euler angle rotations
        /// </summary>
        Vector3 Rotation {get; set;}

        /// <summary>
        /// Any translations
        /// </summary>
        Vector3 Translation { get; set; }

        /// <summary>
        /// Any scaling
        /// </summary>
        Vector3 Scale { get; set; }

        /// <summary>
        /// Enabled status
        /// </summary>
        bool Enabled { get; set; }

        /// <summary>
        /// Reset all transforms to initial values
        /// </summary>
        void ResetAll();

        /// <summary>
        /// Set the enabled state for this object and all children
        /// </summary>
        /// <param name="enable"></param>
        void SetEnabled(bool enable);
    }
}
